package com.lp.article.service;

import com.lp.model.dto.article.PageDto;
import com.lp.model.entity.article.Comments;
import com.lp.model.entity.article.redis.CommentsMsg;
import com.lp.model.entity.article.redis.LikesMsg;
import com.lp.model.entity.article.redis.vo.CommentsMsgVO;
import com.lp.model.entity.article.redis.vo.LikesMsgVO;
import com.lp.model.entity.article.vo.CommentsVO;
import com.lp.model.entity.article.vo.PageVO;
import org.springframework.stereotype.Service;

@Service
public interface ICommentService {

    /**
     * 添加评论
     * @param comments 用户id + 文章id + 评论内容
     */
    void add(Comments comments);

    /**
     * 删除评论
     * @param id 评论id
     */
    void remove(Long id);

    /**
     * 根据文章 id 获取评论列表
     * @param page 分页数据 + 文章id
     */
    PageVO<CommentsVO> getCommentVOPage(PageDto page);

    /**
     * 获取评论消息分页数据
     * @param pageDto 分页数据 + 用户 id
     */
    PageVO<CommentsMsgVO> getMsgPage(PageDto pageDto);

    /**
     * 添加评论消息
     */
    void addMsg(CommentsMsg commentsMsg);

    /**
     * 删除全部消息
     * @param userId 用户id
     */
    void delMsgAll(Long userId);

    /**
     * 评论消息是否已读
     * @param userId 用户id
     */
    boolean isRead(Long userId);

}
